Package-level declarations

Types

Link copied to clipboard

Implements a Goal-Oriented Action Planning system using the A* algorithm. A* works by finding the optimal sequence of actions to transform an initial state into a goal state while minimizing total cost. See https://en.wikipedia.org/wiki/A*_search_algorithm

Link copied to clipboard

Conditions may be true, false or unknown

Link copied to clipboard
Link copied to clipboard

Action in a GOAP system.

Link copied to clipboard
interface GoapGoal : GoapStep, Goal

Goal in a GOAP system.

Link copied to clipboard
class GoapPlan(val actions: List<Action>, val goal: Goal, val worldState: GoapWorldState) : Plan
Link copied to clipboard
Link copied to clipboard
data class GoapPlanningSystem(val actions: Set<GoapAction>, val goals: Set<GoapGoal>) : PlanningSystem
Link copied to clipboard
Link copied to clipboard
interface GoapStep : Step
Link copied to clipboard
data class GoapWorldState(val state: GoapState = emptyMap()) : WorldState

Represents the state of the world at any time. World state is just a map. This class exposes operations on the state.

Link copied to clipboard
abstract class OptimizingGoapPlanner(val worldStateDeterminer: WorldStateDeterminer) : GoapPlanner

Abstract class for a Goap planner with common optimization.

Link copied to clipboard

Determine the world state: the conditions that drive GOAP planning Our conditions can have 3 values: true, false or unknown. Unknown may be genuinely unknown, or it may mean that the condition has been lazily evaluated and needs to be evaluated again.